package com.bbb.common.util;

import cn.hutool.core.codec.Base64;
import com.bbb.common.exception.ServiceException;
import com.bbb.pojo.User;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Objects;

import static com.bbb.common.util.JwtAuthUtil.getUser;


public class AuthUtil {
    // session 的 key 值
//    private static final String TOKEN_KEY = "token";

    // 获取当前登录的用户id
    public static Integer getUserId() {
        return getUser().getId();
    }

    // 设置登录权限
//    public static void setToken(User auth) {
//        HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
//        HttpSession session = request.getSession();
//        session.setAttribute(TOKEN_KEY, auth);
//    }

    // 清空权限
//    public static void clear() {
//        HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
//        HttpSession session = request.getSession();
//        session.setAttribute(TOKEN_KEY, null);
//    }

    // 获取当前登录用户
//    public static User getUser() {
//        // 获取全局request
//        HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
//        HttpSession session = request.getSession();
//        Object attribute = session.getAttribute(TOKEN_KEY);
//
//        // 判断是否登录
//        if(attribute == null) {
//            throw new ServiceException("用户未登录");
//        }
//        return (User) attribute;
//    }

//    public static boolean isLogin() {
//        // 获取全局request
//        HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
//        HttpSession session = request.getSession();
//        Object attribute = session.getAttribute(TOKEN_KEY);
//
//        if(attribute == null) {
//            return false;
//        }
//        return true;
//    }
}
